#include "StdAfx.h"
#include "AllKindsOfSorts.h"


AllKindsOfSorts::AllKindsOfSorts(void)
{
}


AllKindsOfSorts::~AllKindsOfSorts(void)
{
}

void AllKindsOfSorts::ImproveQuickSort(int *list,int m,int n){
	int k,t,i,j;
	/*
	for(i=0;i<10;i++)
	{
		print("%3d",list[i]);
	}
	*/

	if(m<n)
	{	
		i=m;
		j=1;
		k=list[m];
		while(i<j)
		{
			for(i=i+1;i<n;i++)
				if(list[i]>=k)
					break;
			for(j=j-1;j>m;j--)
				if(list[j]<=k)
					break;
			if(i<j)
			{
				t=list[i];
				list[i]=list[j];
				list[j]=t;
			}
		}
		t=list[m];
		list[m]=list[j];
		list[j]=t;
		ImproveQuickSort(list,m,j-1);
		ImproveQuickSort(list,i,n);

	}
}

void AllKindsOfSorts::ImproveQuickSortExe(){
	int list[10];
	int n=9,m=0;
	printf("imput 10 number:\n");
	for(int i=0;i<10;i++)
		scanf("%d",&list[i]);
	printf("\n");
	ImproveQuickSort(list,m,n);
	for(int i=0;i<10;i++)
		printf("%5d",list[i]);
	printf("\n");
}